js获取前(后)N个月的起止日期 |
您所在的位置:网站首页 › js的new date减一个月 › js获取前(后)N个月的起止日期 |
项目中遇到传参是某月开始时间和结束时间,有些月份有30天,有些有30天,而有些只有28天,为准确的获取前N个月的起止日期,代码如下: 运行结果如下: 运行该代码时的时间为2022.11.03运行该代码时的时间为2022.11.03注:运行该代码时的时间为2022-11-03; 传入值:正数为N个月后,负数为N个月前,0为当前月份; 所有代码: function getMonthInfo(num) { //起止日期数组 var startStop = new Array(); //当前时间 var currentDate = new Date(); var month = currentDate.getMonth() + num; if (month < 0) { var n = parseInt(-month / 12); month += n * 12; currentDate.setFullYear(currentDate.getFullYear() - n); } currentDate = new Date(currentDate.setMonth(month)); //获得当前月份0-11 var currentMonth = currentDate.getMonth(); //获得当前年份4位年 var currentYear = currentDate.getFullYear(); //获得上一个月的第一天 var currentMonthFirstDay = new Date(currentYear, currentMonth, 1); //获得上一月的最后一天 var currentMonthLastDay = new Date(currentYear, currentMonth + 1, 0); startStop.push(getDate(currentMonthFirstDay)); startStop.push(getDate(currentMonthLastDay)); return startStop; } function getDate(date) { var year = ''; var month = ''; var day = ''; var now = date; year = '' + now.getFullYear(); if (now.getMonth() + 1 < 10) { month = '0' + (now.getMonth() + 1); } else { month = '' + (now.getMonth() + 1); } if (now.getDate() < 10) { day = '0' + now.getDate(); } else { day = '' + now.getDate(); } return year + '-' + month + '-' + day; } console.log(getMonthInfo(4)); console.log(getMonthInfo(0)); console.log(getMonthInfo(-9)); |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |